package com.framework.workflow.service;

import com.framework.workflow.params.CompleteParam;
import com.framework.workflow.params.StartParam;
import com.framework.workflow.vo.WfResult;
import org.flowable.task.api.Task;

/**
 * @author zzg
 */
public interface IWorkflowService {
    /**
     * 启动流程
     *
     * @param param 启动参数
     * @return
     */
    WfResult startProcess(StartParam param);

    /**
     * 提交任务
     */
    WfResult completeTask(CompleteParam param);


    /**
     * 委托任务
     * @param param 审批对象
     */
    void delegateTask(CompleteParam param);

    /**
     * 撤回任务
     * @param procInstId 流程实例编号
     * @return
     */
    WfResult recallTask(String procInstId);
}
